In the past, support for complex data models requiring integration was provided within each data source or through code written by the customer or consultant. For example, the complex data hierarchy used in Beilstein databases is built into Beilstein itself. Relational databases such as Oracle have no such capability and require expert knowledge of the underlying table structure, SQL, and programming in order to integrate the data in a way that is accessible to end users.
One existing integration system is ISIS (“Integrated Scientific Information System”), a product of MDL Information Systems, Inc. of San Leandro, Calif. ISIS is a leading informatics system in the life science and chemical industries. The ISIS/Host API is a C interface that provides integration of data sources and structure searching. The Hview is an editable text file that informs ISIS/Host of how the end user will see this integration. Using the Hview, ISIS/Host can open similar databases that reside on one or more host computers and present a unified view of the data to ISIS users.
Although the Hview provides a very powerful way of describing data models, it has some serious limitations. First, it is too rigid. For example, a given data model may be viewed as many different hierarchies; sometimes it even makes sense to query one hierarchy and retrieve another. In the ISIS domain, viewing data via different Hviews is problematic, and may require a programmer to write custom code. Second, Hviews support a limited set of data relationships. Pivoting of data is functionality that almost every customer requires, yet it is not supported directly by ISIS/Host. Even in the simplest pivoting case, searching and retrieving data is a two-step process; in most cases, it is far more complex. Finally, the syntax of Hviews is arcane; some companies have experts dedicated to writing and maintaining Hviews. Although the underlying process of describing complex data models may always require experts, the syntax used should make the process easier, not harder.
Goals of a preferred system embodiment of the present invention comprise the following. First, the system should be flexible and make it easier to provide multiple hierarchical views of the same data model. Second, the system should be extensible to allow, new unforeseen data relationships to be defined. Third, the process of describing a data model should not be made more difficult via an arcane syntax.